//路由文件
//导入express
const express=require("express")
//调用router方法
const router=express.Router()
//导入处理用户登录逻辑的js文件
const userLogin=require("../service/userLogin")
const AuthorList=require("../service/AuthorList")
const HomeArticle=require("../service/HomeArticle")
const classifyArticle=require("../service/classifyArticle")
const addUser=require("../service/addUser")
const deleteArticle=require("../service/deleteArticle")

//设置路由 登录接口
router.post("/userLogin",(req,res)=>{
    //用户传递过来的参数
    let params=req.body
    // console.log(params)
    let username=params.userName//用户名
    let userpwd=params.userPassword//密码
    //调用处理登录逻辑的函数 将用户名和密码传递过去
    userLogin(username,userpwd).then(data=>{
        if(data==501){
            res.json({
                status:data,
                msg:"用户不存在"
            })
        }else if(data==502){
            res.json({
                status:data,
                msg:"密码错误"
            })
        }else{
            res.json({
                status:200,
                msg:{_id:data.userId,userName:data.userName,headImg:data.headImg}
            })
 res.send()
        }
    })
})

//获取首页所有作者列表的路由
router.get("/authorList",(req,res)=>{
    //调用处理逻辑的文件
    AuthorList().then(data=>{
        if(data==4001){
            res.json({
                status:data,
                msg:"作者列表为空"
            })
            res.end()
        }else{
            res.json({
                status:200,
                msg:data
            })
            res.end()
        }
    })
})

//获取首页文章数据的路由
router.get("/homeArticle",(req,res)=>{
    HomeArticle().then(data=>{
        if(data==4001){
            res.json({
                status:data,
                msg:"首页文章为空"
            })
            res.end()
        }else{
            res.json({
                status:200,
                msg:data
            })
            res.end()
        }
    })
})


// 获取文章分类页加载文章列表数据路由
router.get("/classifyArticle",(req , res)=>{
    let values = req.query.classify
    if (!values) {
        res.status(400).json({
            status: 400,
            msg: "分类参数不能为空"
        });
        return;
    }
    classifyArticle(values).then(data=>{
        if(data == 400){
            res.json({
                status : data , 
                msg : "空"
            })
            res.end()
        }else{
            res.json({
                status : 200 , 
                msg : data
            })
            res.end()
        }
    })
})


//获取用户注册
router.post("/addUser",(req,res)=>{
    // 获取用户传递过来的参数
    let params = req.body
    let userid = params.userId //用户id
    let username = params.userName //用户名
    let userpwd = params.userPassword //密码
    let desc = params.description //个人简介
    let headimg = params.headImg //用户头像
    // 调用处理注册逻辑的函数 
    addUser(userid,username,userpwd,desc,headimg).then(data => {
        if(data == 501){
            res.json({
                status : data ,
                msg : "用户已存在"
            })
        }else if(data == 502){
            res.json({
                status : data ,
                msg : "注册失败"
            })
        }else{
            res.json({
                status : 200 ,
                msg : {
                    _id : Buffer.from(String(userid)).toString("base64") ,
                    userName : username ,
                    createTime : new Date(),
                    headImg : headimg ,
                    desc : desc
                }
            })
        }
    })
})

//删除数据
router.get("/deleteArticle",(req , res)=>{
    // 调用删除文章数据函数
    let values = req.query.id
    if (!values) {
        res.status(404).json({
            status: 404,
            msg: "文章id不能为空"
        });
        return;
    }
    deleteArticle(values).then(data=>{
        if(data == 400){
            res.json({
                status : data , 
                msg : "删除失败"
            })
            res.end()
        }else{
            res.json({
                status : 200 , 
                msg : { true: true }
            })
            res.end()
        }
    })
})

//导出
module.exports=router
